<div>001</div>
<div>002</div>
<div>003</div>

<script>
    //1 匿名函数  函数自调用
    //2 细节
    //匿名函数最前面有;
    //匿名函数有一个实参，两个形参

    // 加；是为了保险起见
    let test = 666;
    ; (function (window, underfined) {
        //匿名函数可以解决数据污染问题，但是数据外面用不了
        //el就是element
        let jQuery = function (el) {
            let els = document.querySelectorAll(el)
            //     // 获取所有数据
            //     let els = document.querySelectorAll(el)
            //     for (let i = 0; i < els.length; i++) {
            //         this[i] = els[i] //this全等于实例化对象
            //     }
                // this.length = els.length
            // }
            // 上述代码可以简化成以下
            let arr = []
            arr.push.apply(this, els);
        }
        //可以通过 赋值给window在对象外面使用
        window.jQuery = window.$ = jQuery
    })(window)

    let jqobj = new $('div')
    console.log(jqobj);
</script>